//
//  LcbRequestParam.h
//  lcb
//
//  Created by lcb on 2017/1/23.
//  Copyright © 2017年 liuchengbin. All rights reserved.
//

#import <Foundation/Foundation.h>

/**http缓存加载类型*/
typedef NS_ENUM(NSUInteger, HttpCacheLoadType) {
    /** 不使用缓存,不管缓存中有无数据,直接从网络中加载,不更新缓存 */
    NOT_USE_CACHE=1,
    /** 不使用缓存,只使用网络加载,加载成功后更新缓存(要更新缓存,这种情况需要设置缓存过期时间) */
    NOT_USE_CACHE_UPDATE_CACHE=2,
    /** 先加载缓存,再请求网络,并且更新缓存(要更新缓存,这种情况需要设置缓存过期时间) */
    USE_CACHE_UPDATE_CACHE=3,
    /** 先加载缓存,再请求网络,不更新缓存 */
    USE_CACHE=4
};
typedef NS_ENUM(NSUInteger, HttpRequestModel) {
    RequestModel_GET = 1, // get请求方式
    RequestModel_POST  = 2 ,// post请求方式
    RequestModel_PUT  = 3 ,// put请求方式
    RequestModel_DELETE  = 4 // delete请求方式
};
@interface LcbRequestParam : NSObject{
   
}
/**请求地址*/
@property(nonatomic,strong) NSString*url;
/**请求地址*/
@property(nonatomic,strong) NSString*downloadurl;
/**请求头*/
@property(nonatomic,strong) NSMutableDictionary*headers;
/**请求体*/
@property(nonatomic,strong) NSMutableDictionary*bodys;
/**请求超时时间*/
@property (nonatomic) int request_timeout;
/**缓存加载类型*/
@property (nonatomic) HttpCacheLoadType cacheLoadType;
/**请求方式*/
@property (nonatomic) HttpRequestModel requestModel;

/**
 * 请求参数构造方法
 * @param url 请求地址
 */
-(instancetype)initWithUrl:(NSString*)url;

/**
 * 设置单个请求头(会替换对应的key)
 * @param
 */
-(void)setHeader:(NSString*)values withKey:(NSString*)key;


/**获取body字典*/
-(NSDictionary*)getBodys;

/**获取请求体*/
-(id)bodys;

/**
 * 添加请求参数(健值对方式)
 * @param values
 * @param key
 */
-(void)addBody:(NSString*)values withKey:(NSString*)key;

/**
 * 添加请求方式(字典方式)
 * @param bodys
 */
-(void)addBodys:(NSDictionary*)bodys;

/**
 * 添加请求方式(普通对象方式)
 *
 */
-(void)addBodyOfObject:(id)bodys;
@end
